package com.sxj.corejava.code08_常用类.包装类;

/**
 * @author 石小俊
 * @date 2025年02月18日
 */
public class Test02_装箱与拆箱 {

    public static void main(String[] args) {
        // 装箱
        int i = 1;
        // 手动装箱
        Integer integer = new Integer(1);
        // 自动装箱,JDK5开始才支持的
        Integer integer2 = i;

        int i1 = 100;
        int i2 = 100;
        System.out.println(i1 == i2);
        Integer integer3 = new Integer(100);
        Integer integer4 = new Integer(100);
        System.out.println(integer3 == integer4);

        Integer integer5 = Integer.valueOf(100);
        Integer integer6 = Integer.valueOf(100);
        System.out.println(integer5 == integer6);

        // 涉及装箱与多态
        Object obj = 10;
//        int i10 = 10;
//        Integer integer10 = i10;
//        Object obj2 = integer10;

        // 直接在代码中写整数都表示int类型
        // 直接在代码中写值都表示对应的基本数据类型
        test(1);
        // 如果要表示对应包装类,需要手动装箱
        test(Integer.valueOf(1));

    }

    public static void test(int i) {
        System.out.println("调用了int");
    }

    public static void test(Integer i) {
        System.out.println("调用了Integer");
    }

}
